/*
* INSANE - Interactive Structural Analysis Environment
*
* Copyright (C) 2003-2005
* Universidade Federal de Minas Gerais
* Escola de Engenharia
* Departamento de Engenharia de Estruturas
* 
* Author's email :    insane@dees.ufmg.br
* Author's website :  http://www.dees.ufmg.br/insane
* 
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or any later version.
* 
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
* 
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*/
package br.ufmg.dees.insane.util.geometricProperties;

import br.ufmg.dees.insane.util.IPoint3d;
import br.ufmg.dees.insane.util.IVolume;

/** A class representing IGeometricPoint
* A Geometric Point that is represented by its IPoint3d and its infinitesimal Volume (sides dx,dy,dz).
* @author CENOURA!!!
* @since 20/11/2005
*/
public class IGeometricPoint extends IPoint3d{
	
	private static final long serialVersionUID = 1L;

	/** The IPoint3d of this IGeometricPoint.*/
    private IPoint3d point;
    
    /** The Volume of this IGeometricPoint.*/
    private IVolume volume;
    
    public IGeometricPoint(IPoint3d p, IVolume v){
    	this.point=p;
    	this.volume=v;
    }
    
	/**
	 * @return Returns the point.
	 */
	public IPoint3d getPoint() {
		return point;
	}
	/**
	 * @param point The point to set.
	 */
	public void setPoint(IPoint3d point) {
		this.point = point;
	}
	/**
	 * @return Returns the volume.
	 */
	public IVolume getVolume() {
		return volume;
	}
	/**
	 * @param volume The volume to set.
	 */
	public void setVolume(IVolume volume) {
		this.volume = volume;
	}
	
	/* (non-Javadoc)
     * @see br.ufmg.dees.insane.util.IPoint3d#getCoords()
     */
    public double[] getCoords() {
        return this.getPoint().getCoords();
    }
    /* (non-Javadoc)
     * @see br.ufmg.dees.insane.util.IPoint3d#getX()
     */
    public double getX() {
        return this.getPoint().getX();
    }
    /* (non-Javadoc)
     * @see br.ufmg.dees.insane.util.IPoint3d#getY()
     */
    public double getY() {
        return this.getPoint().getY();
    }
    /* (non-Javadoc)
     * @see br.ufmg.dees.insane.util.IPoint3d#getZ()
     */
    public double getZ() {
        return this.getPoint().getZ();
    }
	
}
